package main

import (
	"fmt"
	"encoding/base64"
)

//base64可以节省点空间
func main() {
	//编解码的字符串
	data := "abc123!?$*&()'-=@~"

	//支持标准的和 URL 兼容的 base64 格式
	//编码需要使用 []byte 类型的参数，要将字符串转成此类型
	//标准 base64 编码和 URL 兼容 base64 编码的编码字符串存在稍许不同（后缀为 + 和 -）

	//标准base64
	sEnc := base64.StdEncoding.EncodeToString([]byte(data))
	fmt.Println(sEnc)

	//解码可能会返回错误，如果不确定输入信息格式是否正确，那么，就需要进行错误检查
	sDec, _ := base64.StdEncoding.DecodeString(sEnc)
	fmt.Println(string(sDec))

	//URL兼容的base64
	uEnc := base64.URLEncoding.EncodeToString([]byte(data))
	fmt.Println(uEnc)
	uDec, _ := base64.URLEncoding.DecodeString(uEnc)
	fmt.Println(string(uDec))
}
